<template>
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
        <div class="container">
            <a class="navbar-brand" href="#">MySpace</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarText">
                <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                    <li class="nav-item">
                        <router-link :class="route_name === 'home' ? 'nav-link active' : 'nav-link'" :to="{name: 'home'}">首页</router-link>
                    </li>
                    <li class="nav-item">
                        <router-link :class="route_name === 'userlist' ? 'nav-link active' : 'nav-link'" :to="{name: 'userlist'}">用户列表</router-link>
                    </li>
                </ul>
                <ul class="navbar-nav" v-if="!$store.state.user.is_login">
                    <li class="nav-item">
                        <router-link :class="route_name === 'login' ? 'nav-link active' : 'nav-link'"  :to="{name: 'login'}">登录</router-link>
                    </li>
                    <li class="nav-item">
                        <router-link :class="route_name === 'register' ? 'nav-link active' : 'nav-link'" :to="{name: 'register'}">注册</router-link>
                    </li>
                </ul>
                <ul class="navbar-nav" v-else> 
                    <li class="nav-item">
                        <router-link class="nav-link" :to="{name: 'userprofile', params: {userId: $store.state.user.id}}" >{{ $store.state.user.username }}</router-link>
                    </li>
                    <li class="nav-item">
                        <router-link class="nav-link" @click="logout" :to="{name: 'login'}">注销</router-link>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
</template>

<script>
import { useRoute } from 'vue-router';
import { computed } from 'vue';
import { useStore } from 'vuex';

export default {
    name: 'NavBar',
    setup() {
        const route = useRoute();
        let route_name = computed(() => route.name);
        const store = useStore();

        //退出登录
        const logout = () => {
            store.dispatch('logout');
        };

        return {
            route_name,
            logout,
        }
    },
}
</script>

<style scoped>

</style>